ALTER CACHE GROUP文を使用して、AUTOREFRESHの状態、時間隔およびモードを変更できます。
AUTOREFRESHを使用すると、Oracleでの更新をTimesTenキャッシュ・グループに伝播できます。AUTOREFRESHは、キャッシュ・グループがユーザー管理キャッシュ・グループであるか、READONLYとしてAUTOREFRESH句を使用して宣言された場合に有効にできます。
ALTER CACHE GROUPを使用して設定した任意の値または状態は永続的です。それらの設定はデータ・ストアに保存されるため、デーモンやキャッシュ・エージェントを再起動した場合にも引き続き使用されます。
キャッシュ・グループの種類の詳細は、「ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ」を参照してください。
TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。
この文は、キャッシュ・グループのモードを変更します。これによって、AUTOREFRESHにおいて更新される行が決まります。
ALTER CACHE GROUP [Owner.]GroupName
SET AUTOREFRESH MODE
{INCREMENTAL [WITH LIMIT NumChanges] | FULL}
この文は、キャッシュ・グループのAUTOREFRESHの時間隔を変更します。
ALTER CACHE GROUP [Owner.]GroupName
SET AUTOREFRESH INTERVAL IntervalValue
{MINUTES | SECONDS | MILLISECONDS}
この文は、AUTOREFRESHの状態を変更します。
ALTER CACHE GROUP [Owner.]GroupName
SET AUTOREFRESH STATE
{ON | OFF | PAUSED}
[Owner.]GroupName | 新しいキャッシュ・グループに割り当てられる名前です。 |
AUTOREFRESH |
Oracleへの変更を自動的にTimesTenに伝播するように指定します。詳細は、「キャッシュ・グループのAUTOREFRESH」を参照してください。 |
MODE | 自動リフレッシュ時に更新されるキャッシュ内の行を指定します。INCREMENTAL句が指定された場合、TimesTenは前回の伝播以降にOracleに加えられた変更のみをリフレッシュします。FULL句が指定された場合、またはFULL句もINCREMENTAL句も指定されなかった場合、TimesTenは自動リフレッシュのたびにキャッシュ内のすべての行を更新します。デフォルトのモードはINCREMENTALです。 |
INTERVAL IntervalValue | 自動リフレッシュを行う時間隔を分、秒またはミリ秒の単位で指定します。AUTOREFRESHを実行する頻度を分、秒またはミリ秒単位の整数値で指定します。デフォルト値は10分です。指定した時間隔でAUTOREFRESHを完了できない場合は、実行時に警告が生成され、現在の処理が終了するまで次回のAUTOREFRESHを待機します。待機キューが10に達すると、デーモン・ログに通知メッセージが生成されます。 |
STATE | AUTOREFRESHをオン、オフまたは一時停止のいずれかに変更します。デフォルトでは、AUTOREFRESH STATEはオンです。 |
ON | 指定した時間隔でAUTOREFRESHが実行されるようにスケジュールします。 |
OFF | スケジュールされたAUTOREFRESHを取り消します。TimesTenでは、INCREMENTALリフレッシュに必要な情報が保持されません。このため、後でAUTOREFRESHを再度オンにしても、最初のリフレッシュはFULLになります。 |
PAUSED | スケジュールされたAUTOREFRESHを取り消しますが、TimesTenではINCREMENTALリフレッシュに必要な情報が保持されます。このため、後でAUTOREFRESHを再度オンに設定した場合、完全リフレッシュは不要です。 |
WITH LIMIT NumChanges |
INCREMENTALモードで多数の完全自動リフレッシュが実行される場合に、AUTOREFRESH INCREMENTAL句でWITH LIMITを指定することによって、変更ログ表のサイズを変更できます。NumChangesの値を10,000から2,147,483,647に設定できます。デフォルト値は20,000です。WITH LIMIT句は、AUTOREFRESHの状態がOFFの場合にのみ実行できます。 |
リフレッシュは、ALTER CACHE GROUP...SET AUTOREFRESH STATEコマンドを実行した直後には実行されません。この文では、AUTOREFRESHの状態を変更するだけです。ALTER CACHE GROUP文を含むトランザクションをコミットすると、AUTOREFRESHのスケジュールのためにキャッシュ・エージェントにはすぐに通知されますが、コミットはリフレッシュの完了を待たずに実行されます。AUTOREFRESHのスケジューリングはトランザクションの一部ですが、リフレッシュ自体はトランザクションの一部ではありません。
AUTOREFRESHが設定されたキャッシュ・グループとされていないキャッシュ・グループの間では、レプリケートできません。
この例では、AutorefreshCustomersキャッシュ・グループでのAUTOREFRESHの設定手順を示します。AutorefreshCustomersは増分リフレッシュを実行し、TimesTenに対してOracleのAdminパスワードは指定しません。
AUTOREFRESHを使用するキャッシュ・グループを作成する前に、次の手順を実行する必要があります。
例: